// 这个文件用于封装 分类数据业务 相关的代码

import { ref, onMounted } from 'vue';
import { useRoute, onBeforeRouteUpdate } from 'vue-router';
import { getCategoryAPI } from '@/apis/category.js';

export function useCategory() {
    const router = useRoute();
    // 存储顶部导航栏下的二级目录的相关数据
    const categoryData = ref({});

    const getCategory = async (id = router.params.id) => {   // 如果函数的调用者没有传递参数，那么就采用默认值route.params.id
        // 通过route获取当前路由路径中携带的属性名为id的params参数，将id作为参数传递给接口请求函数
        let res = await getCategoryAPI(id);
        if (res.code == 1) {    // 如果code值为1，证明这个接口请求函数调用成功
            return res.result
        }
    };

    onMounted(() => {
        getCategory().then((res) => {
            //console.log(res);
            categoryData.value = res;
        });
    });

    // 路由路径更新的时候会触发这个钩子函数
    onBeforeRouteUpdate((to) => {      // 参数to可以接收到更新后的路由路径
        getCategory(to.params.id).then((res) => {
            //console.log(res);
            categoryData.value = res;
        });
    });
    return {
        categoryData
    }
}